import { computed, ref } from 'vue'

// 全局loading
const _loadingCount = ref(0)

/**
 * 全局loading，如果loading赋值给了一个true，那么set中拿到之后做对应操作，false同理
 * 使用时将get中的值传出去，如果大于0，那么返回true了
 */

export const loading = computed({
  get() {
    return _loadingCount.value > 0
  },
  set(val: boolean) {
    _loadingCount.value += val ? 1 : -1
    // 处理边界，防止成为负数
    _loadingCount.value = Math.max(0, _loadingCount.value)
  }
})
